package com.nt.train.controller;
import com.nt.train.service.IDemoService;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;

/**
 * bean实例2 多个接口实现  演示2
 * https://www.jb51.net/article/240098.htm
 * @author hlf
 * @version 1.0
 * @date 2022/7/28 8:51
 */
@RestController
public class DemoController {

    /**
     * https://blog.csdn.net/hanxiaotongtong/article/details/123252830
     * 当我们执行这个测试用例的时候一定会报错，因为Spring发现了两个IDemoService的实现类
     * 它不知道去实例化哪一个实现类，来作为IDemoService的实际业务处理bean。当然我们期望的状态是：
     在北京部署系统的时候，使用DemoServiceBeijing作为IDemoService的实现类完成依赖注入
     在上海部署系统的时候，使用DemoServiceShanghai作为IDemoService的实现类完成依赖注入

     原文链接：https://blog.csdn.net/hanxiaotongtong/article/details/123252830
     * @return
     */

//    //这里注入的demoService是DemoServiceShanghai，还是DemoServiceBeijing？
//    @Resource
    IDemoService demoService;

    /*
    方案二：使用@Resource注解
    @Resource
    IDemoService demoServiceBeijing;  //这里的变量名称指定了bean名称

    @Resource(name = "demoServiceBeijing")  //使用resource注解明确指定名称
    IDemoService demoService;

    方案三：使用@Qualifier注解

    @Qualifier("demoServiceBeijing")  //使用Qualifier注解明确指定名称
    @Resource
    IDemoService demoService;

     */

    @RequestMapping("/testDemo")
    public String testDemoService(){
       demoService.doSomething();
        return "success";
    }




}
